package com.situ.edu.service.impl;

import com.situ.edu.dao.IXiCourseDao;
import com.situ.edu.dao.impl.XiCourseDaoImpl;
import com.situ.edu.listener.XiCourseExcelListener;
import com.situ.edu.pojo.entity.Course;
import com.situ.edu.pojo.query.XiQuery;
import com.situ.edu.pojo.vo.CourseCountVO;
import com.situ.edu.pojo.vo.CourseExcelVO;
import com.situ.edu.pojo.vo.CourseVO;
import com.situ.edu.pojo.vo.XiVO;
import com.situ.edu.service.IXiCourseService;
import com.situ.edu.util.ExcelUtils;
import com.situ.edu.util.PageInfo;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.List;

public class XiCourseServiceImpl implements IXiCourseService {
    private IXiCourseDao xiCourseDao = new XiCourseDaoImpl();

    @Override
    public PageInfo selectByCourse(XiQuery xiQuery) {
        List<XiVO> list = xiCourseDao.selectByCourse(xiQuery);
        int totalCount = xiCourseDao.selectTotalCount(xiQuery);

        return PageInfo.ok(totalCount,list);
    }

    @Override
    public void deleteById(int id) {
        xiCourseDao.deleteById(id);
    }

    @Override
    public void deleteAll(String[] ids) {
        for (String id : ids) {
            xiCourseDao.deleteById(Integer.parseInt(id));
        }
    }

    @Override
    public void add(Course course) {
        xiCourseDao.add(course);
    }

    @Override
    public Course selectById(int id) {
        return xiCourseDao.selectById(id);
    }

    @Override
    public void update(Course course) {
        xiCourseDao.update(course);
    }

    @Override
    public List<CourseCountVO> selectCourseCount() {
        return xiCourseDao.selectCourseCount();
    }

    @Override
    public void exportExcel(HttpServletResponse resp) {
        List<CourseExcelVO> list = xiCourseDao.selectAll();
        ExcelUtils.exportExcel(resp,list,CourseExcelVO.class,"导出XiCourse数据");
    }

    @Override
    public void importExcel(HttpServletRequest req) {
        ExcelUtils.importExcel(req,new XiCourseExcelListener(),CourseVO.class);
    }

    @Override
    public List<Course> selectAll() {
        return xiCourseDao.selectCourseAll();
    }
}
